﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
using QuanLyQuanCafe.DataAccess;
using QuanLyQuanCafe.BusinessObject;

namespace QuanLyQuanCafe.BusinessLogic
{
    class NhapKhoBL
    {
        KetNoiDuLieu connect = new KetNoiDuLieu();
        public DataTable DSPhieuNhap()
        {
            string sql = "SELECT NHAPKHO.MaNhap, NHAPKHO.NgayNhap, NHAPKHO.TongTien, NHANVIEN.HoTenNV, NHACC.TenNCC FROM  NHAPKHO, NHANVIEN, NHACC WHERE NHAPKHO.CMND_NV = NHANVIEN.CMND_NV AND NHAPKHO.MANCC = NHACC.MANCC";
            return connect.LayDanhSachDuLieu(sql);
        }

        public DataTable DSPhieuNhap1()
        {
            string sql = "SELECT NHAPKHO.MaNhap, NHAPKHO.NgayNhap NHAPKHO.TongTien, NHANVIEN.HoTenNVFROM  NHAPKHO, NHANVIEN WHERE NHAPKHO.CMND_NV = NHANVIEN.CMND_NV";
            return connect.LayDanhSachDuLieu(sql);
        }


        public bool CheckPhieuNhap(int value)
        {
            if (connect.KiemTraGiaTriInt("NHAPKHO", "MaNhap", value))
                return true;
            return false;
        }

        public int FindMa()
        {
            int manhap = 1;
            string sql = "SELECT MaNhap FROM NHAPKHO";

            DataTable nhapkho = connect.LayDanhSachDuLieu(sql);
            if (nhapkho.Rows.Count > 0)
            {
                for (int i = 0; i < nhapkho.Rows.Count; i++)
                {

                    if (manhap == int.Parse(nhapkho.Rows[i]["MaNhap"].ToString()))
                        manhap++;
                    else return manhap;
                }
            }
            return manhap;
        }

        public bool ThemNK(NhapKhoBO nhapkhoBO)
        {
            if (TestSave(nhapkhoBO))
            {
                string sql = string.Format("INSERT INTO NHAPKHO VALUES ('{0}', '{1}', '{2}', '{3}', '{4}')", nhapkhoBO.MaNhap, nhapkhoBO.CMND_NV, nhapkhoBO.MaNCC, nhapkhoBO.NgayNhap, nhapkhoBO.TongTien);
                if (connect.ExecuteQuery(sql))
                {
                    MessageBox.Show("Thêm Thành Công", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return true;
                }
            }
            return false;
        }

        public bool SuaNK(NhapKhoBO nhapkhoBO)
        {
            if (TestSave(nhapkhoBO))
            {
                string sql = string.Format("UPDATE NHAPKHO SET CMND_NV = '{0}', MaNCC = '{1}', NgayNhap='{2}', TongTien='{3}'" + "WHERE MaNhap = '{4}'", nhapkhoBO.CMND_NV, nhapkhoBO.MaNCC, nhapkhoBO.NgayNhap, nhapkhoBO.TongTien, nhapkhoBO.MaNhap);
                if (connect.ExecuteQuery(sql))
                {
                    MessageBox.Show("Sửa Thành Công", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return true;
                }
            }
            return false;
        }

        public bool XoaNK(string value)
        {
            string sql = string.Format("DELETE FROM NHAPKHO WHERE MaNhap = '" + value + "'");
            string sql2 = string.Format("DELETE FROM CT_NHAPKHO WHERE MaNhap = '" + value + "'");
            if (connect.ExecuteQuery(sql)&&connect.ExecuteQuery(sql2))
            {
                MessageBox.Show("Xóa Thành Công", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return true;
            }
            return false;
        }

        public bool TestSave(NhapKhoBO nhapkhoBO)
        {
            if (nhapkhoBO.MaNhap.Equals(""))
            {
                MessageBox.Show("Mã Nhập Kho Không Hợp Lệ", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }
            
            if (nhapkhoBO.TongTien ==0)
            {
                MessageBox.Show("Bạn Chưa Thêm Nguyên Liệu Nhập", "Quản Lý Quán Cafe", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return false;
            }

            return true;
        }
    }
}
